iT邦幫忙

2025 iThome 鐵人賽

DAY 30
0
Cloud Native

30 天深入淺出 Cilium :從入門到實戰系列 第 30

[Day 30] 深入淺出 Cilium 完結篇:從 Cilium 出發的下一段旅程

  • 分享至 

  • xImage
  •  

來到鐵人賽的最後一天了,感謝你(我)一起拼完這 30 天的學習旅程,讓我們一起回顧這 30 天學到了什麼?如果你還想繼續鑽研,你有哪些具體方向可以前進?

回顧「30 天深入淺出 Cilium :從入門到實戰 」

在這次的鐵人賽,我的目標讀者是已經有 Kubernetes 使用經驗和 Networking 基礎的人,所以在設計課程時,我盡量讓課程內容會跟 K8s 日常工作情境產生連結,像是我從一個 kubectl run 這個命令說起來連結到當我們在日常中建立一個 Pod 背後發生什麼。

入門到實戰

而課程的規劃先讓讀者們打好一些基底像是 eBPF 的原理和 Cilium 環境建置,接著便從 Pod 出發逐漸向外擴散:從同 Node 、接著討論到跨 Node、Pod to Service、Service to Service、Cross Cluster 並在最後分享了我在真實工作中的實際案例,過程就很像求學時我們先學好程式語言、接著陸陸續續碰到開發框架、架構設計、最後踏上真實的戰場

深入淺出

  • 深入」:內容我主張要深入底層原理、講得很深入、有深度、有實作、並實際驗證,內容不是表面教你怎麼使用 Cilium 而已,最後也要分享真正戰場上才會遇到的案例
  • 淺出」:表達方式我盡可能保持淺顯易懂,若有艱澀詞彙我會確保文章內有一段落來講解這個詞彙的意義,同時我確保課程設計是循序漸進,後面的概念可以接續前面的概念,而非突然地灌進大量的複雜概念使讀者難以理解

以下我將 30 天的課程分成三大部分,不論是讀者日後想回顧、只想加強特定部分或是本身已經有 Cilium 基礎,都可以參考下方歸納的連結直接跳轉過去查看文章:

基礎打底

深入底層

進階應用與實戰

讀完鐵人賽後,你(我)的下一步可以去哪?

參加 2025 K8s Summit

如果讀者們在 2025/10/22 16:00 UTC+8 有空,歡迎來聽聽我的演講「從零打造eBPF CNI Plugin:揭秘Cilium封包處理核心原理」,並現場和我以及我強大的神隊友們現場交流!

我的演講靈感是來自於這個影片 — Containers From Scratch • Liz Rice • GOTO 2018 ,這部影片裡面講者 Liz Rice 深入解釋 container 的運作原理,透過實際編寫 Go 語言程式碼,逐步建構一個容器,不知道讀者們學 Container 時是否也看過這個影片?這部影片對我一開始要深入底層理解 Container 時影響得頗深,所以我對這影片很有印象

我自己就覺得何嘗台灣也不能有一種這樣的演講 XD,這對於一個要踏入新領域又想理解底層原理的聽眾幫助很大,所以我才想在 Cilium 這領域也來場這樣的演講

這場演講你會真實感受到一個 eBPF-based CNI Plugin 怎麼做出來!回到家後你可以自己練習實作看看,親手感受 eBPF 的力量以及 Cilium 的奧秘。

閱讀 Cilium 原始碼,最後貢獻程式碼

事實上你會發現 Cilium 學習過程,很吃重閱讀原始碼,原因不單單是因為「可程式化 Datapath」還有一大部分原因是「Cilium 一個參數改變後續行為可能就會有大改變」和「網路世界太複雜」,這導致很多東西是官方文件不一定有寫出來,官方文件要滿足所有人真的很難,在我實戰中,有蠻多案例我反而是先去看程式碼才找出問題的,所以及早練習閱讀 Cilium 原始碼我相信對你日後排查會很有幫助

讀者們可能會想問「我該如何閱讀 Cilium 原始碼」,我這裡有幾個建議:

  1. 先看完官方文件寫的 Code Overview,你只要有個印象就好,日後有需要都可以回來翻
  2. 請以目標取向去追原始碼,而不是隨便找個程式碼的進入點就埋頭當文章開始啃
    • 👉 你應該先想清楚想理解什麼問題、想釐清哪個行為,然後帶著這個目標去追蹤相關的 code path
    • 例如:想知道 封包是怎麼從 TC ingress 到達目的 Pod → 那就找出掛載在 veth 上的 BPF Program 然後回去 Repo 追原始碼
  3. 承上,在 AI 時代,請善用 AI 解釋程式碼,可以將原始碼 Clone 下來,然後請 AI 幫你根據目標抓出對應的檔案有哪些,AI 是一個強大的 Copilot、是這個時代的學習加速器
  4. 承上,AI 講得東西務必務必要親手驗證,例如:實際抓封包看 Datapath 是否符合預期路徑

最後,你(我)希望有一天也能為 Cilium 專案貢獻程式碼。

深入研究 eBPF

是因為認識了 Cilium 我才認識了 eBPF,而 eBPF 的應用不單單在 Networking,還包括 Security 和 Observability,所以我們可以跳到其他領域繼續深耕,以 Observability 為例,我們公司現在正在導入 Pyroscope 背後就有用到 eBPF!以及我在工作日常中想要排查一些 issue 就很想試試看用 bpftrace 來排查

而如果想針對理論持續深耕,Cilium 官方文件有附一個很深入的文章 — BPF and XDP Reference Guide,裡面非常深入的探討 eBPF,很推薦對 eBPF 底層有興趣的讀者去琢磨。


學習資源

這裡我推薦幾個很讚的頻道、大神、部落格,裡面有很多 Cilium 或是 eBPF 的學習資源,我在學習 Cilium 的過程都從這些地方吸收了不少知識,推薦給讀者們:


感謝

感謝您的閱讀

很感謝正在閱讀這篇文章的讀者們,我希望我的文章能夠幫助您在學習 Cilium 路上更得心應手!若讀者有發現文章內容有錯誤請不吝糾正我,因為我也還正在學習!

您可以直接在文章下方留言、或是也可以寄信到 shiunchiu.me@gmail.com

最後若您有任何想要交流的問題或是技術,歡迎您加我 Linkedin 直接線上聊聊~

感謝 SHOPLINE 團隊的指導

最後我很感謝 SHOPLINE 的 Cloud Team,非常喜歡這裡的同事和這裡的工作氛圍。
我的 Team Lead, Mao Wang 與部門主管 Andy Chung 給予了我許多鼓勵與啟發,不僅提供學習方向,也在技術成長的路上給了我明確的建議。
能在這樣一個支持學習、鼓勵探索的團隊裡成長,我覺得非常幸運,也深深感謝,期待日後跟著團隊成長的日子!


上一篇
[Day 29] Cilium 實戰分享 (3) 裝了 Cilium 後,流量來了,一個 Pod 要 Ready 需要等 26 分鐘?
系列文
30 天深入淺出 Cilium :從入門到實戰30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

1
mikehsu0618
iT邦研究生 5 級 ‧ 2025-10-14 00:19:16

恭喜完賽

shiun iT邦新手 5 級 ‧ 2025-10-14 02:14:37 檢舉

謝謝!! 🙌

1
lagagain
iT邦新手 1 級 ‧ 2025-10-14 07:22:36

原來「從零打造eBPF CNI Plugin:揭秘Cilium封包處理核心原理」這個在k8s summit的主題演講人就是你!

一開始別人貼給我議程的時候只對該主題有興趣,因此這次沒報名 /images/emoticon/emoticon16.gif

總之,恭喜完賽阿!

/images/emoticon/emoticon32.gif

shiun iT邦新手 5 級 ‧ 2025-10-19 23:53:22 檢舉

哇,週末打開 iTHome 好開心聽到這個消息
可惜這次沒報名無法前來,總之很感謝你的支持 🙌

我要留言

立即登入留言